import os
import rtconfig
import subprocess
from building import *
Import('RTT_ROOT')

group = []

cwd = GetCurrentDir()
CPPPATH = [cwd, cwd + "/kernel"]

if not GetDepend(['RT_USING_VDSO']):
    Return('group')

if rtconfig.ARCH != "aarch64":
    src = Glob('*.c')
    group = DefineGroup('VDSO', src, depend = ['RT_USING_SMART','RT_USING_VDSO'], CPPPATH = CPPPATH)
    Return('group')

list = os.listdir(cwd)
src    = Glob('kernel/*.c')
src    +=Glob('kernel/*.S')

if not os.path.exists(cwd + "/user/vdso.lds"):
    Preprocessing("user/vdso.lds.S", ".lds", CPPPATH=[cwd])

#aarch64 vdso xmake
# vdso_file = os.path.join(cwd, 'usr', 'xmake.lua')
# command = ["xmake", "-F", vdso_file]
# clean = ["xmake", "clean"]

vdso_file = os.path.join(cwd, 'user', 'SConstruct')
command = ["scons", "-f", vdso_file]
clean = ["scons", "-f", vdso_file, "--clean"]

if not GetOption('clean'):
    result = subprocess.run(command)
else:
    result = subprocess.run(clean)

if result.returncode == 0:
    print("Command executed successfully")
else:
    print("Command failed with exit code:", result.returncode)
    exit(1)

group = DefineGroup('VDSO', src, depend = ['RT_USING_SMART','RT_USING_VDSO'], CPPPATH = CPPPATH)
Return('group')
